package com.meida.module.admin.provider.service;

import com.meida.common.mybatis.base.service.IBaseService;
import com.meida.common.mybatis.model.ResultBody;
import com.meida.common.mybatis.model.UpdateModel;
import com.meida.module.admin.client.entity.BaseUser;
import com.meida.module.admin.client.model.UserInfo;

import java.util.List;

/**
 * 系统用户资料管理
 *
 * @author: zyf
 * @date: 2018/10/24 16:38
 * @description:
 */
public interface BaseUserService extends IBaseService<BaseUser> {

    /**
     * 更新系统用户
     *
     * @param baseUser
     * @return
     */
    void addUser(BaseUser baseUser);

    /**
     * 更新系统用户
     *
     * @param model
     * @return
     */
    ResultBody updateUser(UpdateModel model);


    /**
     * 查询列表
     *
     * @return
     */
    List<BaseUser> findAllList();


    /**
     * 根据用户ID获取用户信息
     *
     * @param userId
     * @return
     */
    BaseUser getUserById(Long userId);

    /**
     * 根据用户ID获取用户信息和权限
     *
     * @param userId
     * @return
     */
    UserInfo getUserWithAuthoritiesById(Long userId);

    /**
     * 依据登录名查询系统用户信息
     *
     * @param username
     * @return
     */
    BaseUser getUserByUsername(String username);

    /**
     * 设置用户状态
     *
     * @param userId
     * @return
     */
    ResultBody setStatus(Long userId);


}
